#include "main.h"
#include "menu.h"
/**
 * menu_tree 结点序号  0，1
 * father 这个结点的父节点
 * next  这个节点输出后的下一个节点序号，0则表示后序无节点
 * child 子节点，进入该节点后，显示的第一个节点
 * 
 * 字符串用  char  pre_command[64]  MENU_DATA_TYPE_CHAR
 * 如果需要执行命令， 用状态符号，任务执行状态命令
 */
const struct menu_tree_node menu_tree[]={
    {
        .data_type=MENU_DATA_TYPE_CHAR,
        .max_value=0,
        .min_value=0,
        .father=0,
        .next=0,
        .child=1,
        .info_str="\r\n                        ███████╗███████╗███████╗ █████╗ \r\n                        ██╔════╝██╔════╝██╔════╝██╔══██╗\r\n                        █████╗  ███████╗█████╗  ███████║\r\n                        ██╔══╝  ╚════██║██╔══╝  ██╔══██║\r\n                        ███████╗███████║███████╗██║  ██║\r\n                        ╚══════╝╚══════╝╚══════╝╚═╝  ╚═╝\r\n\r\n                             逸海光学(青岛)科技有限公司\r\n\r\n                                手持式光辐射测量装置\r\n",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=0,
        .next=0,
        .child=2,
        .info_str="菜单",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=1,
        .next=7,
        .child=3,
        .info_str="串口配置",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT32,
        .max_value=4000000,
        .min_value=2400,
        .father=2,
        .next=4,
        .child=0,
        .info_str="波特率",
        .data=&config.uart.baudrate,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=11,
        .min_value=7,
        .father=2,
        .next=5,
        .child=0,
        .info_str="数据位",
        .data=&config.uart.databits,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=1536,
        .min_value=0,
        .father=2,
        .next=6,
        .child=0,
        .info_str="奇偶校验\r\n不校验:0\r\n奇校验:1024\r\n偶校验:1536",
        .data=&config.uart.parity,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=12288,
        .min_value=0,
        .father=2,
        .next=0,
        .child=0,
        .info_str="停止位\r\n1bit:0\r\n0.5bit:4096\r\n2bit:8192\r\n1.5bit:12288",
        .data=&config.uart.stopbits,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=1,
        .next=15,
        .child=8,
        .info_str="协议配置",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=2,
        .min_value=0,
        .father=7,
        .next=9,
        .child=0,
        .info_str="协议类型  0:RTU 1:HEX 2:ASCII",
        .data=&config.protocol.type,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_CHAR,
        .max_value=0,
        .min_value=0,
        .father=7,
        .next=10,
        .child=0,
        .info_str="预命令",
        .data=&config.protocol.pre_command,
        .num=64
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=65535,
        .min_value=0,
        .father=7,
        .next=11,
        .child=0,
        .info_str="预命令超时",
        .data=&config.protocol.pre_timout,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_CHAR,
        .max_value=0,
        .min_value=0,
        .father=7,
        .next=12,
        .child=0,
        .info_str="命令",
        .data=&config.protocol.command,
        .num=64
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=0,
        .min_value=0,
        .father=7,
        .next=13,
        .child=0,
        .info_str="超时",
        .data=&config.protocol.timeout,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=0,
        .min_value=0,
        .father=7,
        .next=14,
        .child=0,
        .info_str="数据解析",
        .data=&config.protocol.parser,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=1,
        .min_value=0,
        .father=7,
        .next=0,
        .child=0,
        .info_str="大小端",
        .data=&config.protocol.endian,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=1,
        .next=21,
        .child=16,
        .info_str="输出配置",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=0,
        .min_value=0,
        .father=14,
        .next=17,
        .child=0, 
        .info_str="开始字节",
        .data=&config.output.begin_byte,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=0,
        .min_value=0,
        .father=14,
        .next=18,
        .child=0, 
        .info_str="长度",
        .data=&config.output.begin_byte,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=0,
        .min_value=0,
        .father=14,
        .next=19,
        .child=0, 
        .info_str="结束字节",
        .data=&config.output.end_byte,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=0,
        .min_value=0,
        .father=14,
        .next=20,
        .child=0, 
        .info_str="输出位置",
        .data=&config.output.place,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=0,
        .min_value=0,
        .father=14,
        .next=0,
        .child=0, 
        .info_str="输出数目",
        .data=&config.output.number,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=1,
        .min_value=0,
        .father=1,
        .next=22,
        .child=0,
        .info_str="保存配置",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=1,
        .min_value=0,
        .father=1,
        .next=0,
        .child=0,
        .info_str="重启",
        .data=NULL,
        .num=0
    }

};




/* 
const struct menu_tree_node menu_tree[]={
    {
        .data_type=MENU_DATA_TYPE_CHAR,
        .max_value=0,
        .min_value=0,
        .father=0,
        .next=0,
        .child=1,
        .info_str="\r\n                        ���������������[���������������[���������������[ �����������[ \r\n                        �����X�T�T�T�T�a�����X�T�T�T�T�a�����X�T�T�T�T�a�����X�T�T�����[\r\n                        �����������[  ���������������[�����������[  ���������������U\r\n                        �����X�T�T�a  �^�T�T�T�T�����U�����X�T�T�a  �����X�T�T�����U\r\n                        ���������������[���������������U���������������[�����U  �����U\r\n                        �^�T�T�T�T�T�T�a�^�T�T�T�T�T�T�a�^�T�T�T�T�T�T�a�^�T�a  �^�T�a\r\n\r\n                             �ݺ���ѧ(�ൺ)�Ƽ����޹�˾\r\n\r\n                                �ֳ�ʽ��������װ��\r\n",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=0,
        .next=0,
        .child=2,
        .info_str="�˵�",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=1,
        .next=23,
        .child=3,
        .info_str="�豸����",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=65535,
        .min_value=1,
        .father=2,
        .next=4,
        .child=0,
        .info_str="�豸ID",
        .data=&config.device_id,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=2,
        .next=9,
        .child=5,
        .info_str="��ʼ����ʱ��",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=23,
        .min_value=0,
        .father=4,
        .next=6,
        .child=0,
        .info_str="Сʱ",
        .data=&config.start_time.hour,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=63,
        .min_value=0,
        .father=4,
        .next=7,
        .child=0,
        .info_str="����",
        .data=&config.start_time.min,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=63,
        .min_value=0,
        .father=4,
        .next=8,
        .child=0,
        .info_str="��",
        .data=&config.start_time.sec,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_INT8,
        .max_value=14,
        .min_value=-12,
        .father=4,
        .next=0,
        .child=0,
        .info_str="ʱ��",
        .data=&config.start_time.zone,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=2,
        .next=14,
        .child=10,
        .info_str="��������ʱ��",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=23,
        .min_value=0,
        .father=9,
        .next=11,
        .child=0,
        .info_str="Сʱ",
        .data=&config.end_time.hour,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=63,
        .min_value=0,
        .father=9,
        .next=12,
        .child=0,
        .info_str="����",
        .data=&config.end_time.min,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=63,
        .min_value=0,
        .father=9,
        .next=13,
        .child=0,
        .info_str="��",
        .data=&config.end_time.sec,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_INT8,
        .max_value=14,
        .min_value=-12,
        .father=9,
        .next=0,
        .child=0,
        .info_str="ʱ��",
        .data=&config.end_time.zone,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=28800,
        .min_value=300,
        .father=2,
        .next=15,
        .child=0,
        .info_str="�������ʱ��(��)",
        .data=&config.samp_interval_s,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=16,
        .min_value=1,
        .father=2,
        .next=16,
        .child=0,
        .info_str="ÿ�β����Ĵ���",
        .data=&config.sensor.num_of_msm,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_INT16,
        .max_value=180,
        .min_value=-180,
        .father=2,
        .next=17,
        .child=0,
        .info_str="�豸ƫת�Ƕ�",
        .data=&config.device_offset_angle,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=2,
        .next=20,
        .child=18,
        .info_str="����ƫת�Ƕ�",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_INT16,
        .max_value=135,
        .min_value=-135,
        .father=17,
        .next=19,
        .child=0,
        .info_str="����",
        .data=&config.measure_offset_angle_am,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_INT16,
        .max_value=135,
        .min_value=-135,
        .father=17,
        .next=0,
        .child=0,
        .info_str="����",
        .data=&config.measure_offset_angle_pm,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=2,
        .next=0,
        .child=21,
        .info_str="�豸��ǰλ��",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_INT32,
        .max_value=1800000000,
        .min_value=-1800000000,
        .father=20,
        .next=22,
        .child=0,
        .info_str="����",
        .data=&config.local.longitude,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_INT32,
        .max_value=900000000,
        .min_value=-900000000,
        .father=20,
        .next=0,
        .child=0,
        .info_str="γ��",
        .data=&config.local.latitude,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=1,
        .next=26,
        .child=24,
        .info_str="��������",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_IPV4,
        .max_value=-536870913,
        .min_value=1,
        .father=23,
        .next=25,
        .child=0,
        .info_str="������IPV4��ַ",
        .data=&config.tcp.server_ipv4,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=65535,
        .min_value=0,
        .father=23,
        .next=0,
        .child=0,
        .info_str="�������˿�",
        .data=&config.tcp.server_port,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=1,
        .next=29,
        .child=27,
        .info_str="�������",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT32,
        .max_value=1800000,
        .min_value=1000,
        .father=26,
        .next=28,
        .child=0,
        .info_str="���ϸ��(����/ת)",
        .data=&config.motor.subdiv,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=16,
        .min_value=1,
        .father=26,
        .next=0,
        .child=0,
        .info_str="��������ٶ�(ת/����)",
        .data=&config.motor.speed_r_min,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=1,
        .next=45,
        .child=30,
        .info_str="��������",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT32,
        .max_value=4000000,
        .min_value=300,
        .father=29,
        .next=31,
        .child=0,
        .info_str="����1������",
        .data=&config.uart1.buad,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=1,
        .min_value=0,
        .father=29,
        .next=32,
        .child=0,
        .info_str="����1��żУ��",
        .data=&config.uart1.parity,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=1,
        .min_value=0,
        .father=29,
        .next=33,
        .child=0,
        .info_str="����1ֹͣλ",
        .data=&config.uart1.stopbits,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT32,
        .max_value=4000000,
        .min_value=300,
        .father=29,
        .next=34,
        .child=0,
        .info_str="����2������",
        .data=&config.uart2.buad,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=1,
        .min_value=0,
        .father=29,
        .next=35,
        .child=0,
        .info_str="����2��żУ��",
        .data=&config.uart2.parity,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=1,
        .min_value=0,
        .father=29,
        .next=36,
        .child=0,
        .info_str="����2ֹͣλ",
        .data=&config.uart2.stopbits,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT32,
        .max_value=4000000,
        .min_value=300,
        .father=29,
        .next=37,
        .child=0,
        .info_str="����3������",
        .data=&config.uart3.buad,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=1,
        .min_value=0,
        .father=29,
        .next=38,
        .child=0,
        .info_str="����3��żУ��",
        .data=&config.uart3.parity,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=1,
        .min_value=0,
        .father=29,
        .next=39,
        .child=0,
        .info_str="����3ֹͣλ",
        .data=&config.uart3.stopbits,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT32,
        .max_value=4000000,
        .min_value=300,
        .father=29,
        .next=40,
        .child=0,
        .info_str="����4������",
        .data=&config.uart4.buad,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=1,
        .min_value=0,
        .father=29,
        .next=41,
        .child=0,
        .info_str="����4��żУ��",
        .data=&config.uart4.parity,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=1,
        .min_value=0,
        .father=29,
        .next=42,
        .child=0,
        .info_str="����4ֹͣλ",
        .data=&config.uart4.stopbits,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT32,
        .max_value=4000000,
        .min_value=300,
        .father=29,
        .next=43,
        .child=0,
        .info_str="����6������",
        .data=&config.uart5.buad,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=1,
        .min_value=0,
        .father=29,
        .next=44,
        .child=0,
        .info_str="����6��żУ��",
        .data=&config.uart5.parity,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT16,
        .max_value=1,
        .min_value=0,
        .father=29,
        .next=0,
        .child=0,
        .info_str="����6ֹͣλ",
        .data=&config.uart5.stopbits,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=1,
        .next=49,
        .child=46,
        .info_str="��̬ģ������",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=1,
        .min_value=0,
        .father=45,
        .next=47,
        .child=0,
        .info_str="��װ����",
        .data=&config.jy901.direction,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=1,
        .min_value=0,
        .father=45,
        .next=48,
        .child=0,
        .info_str="�㷨",
        .data=&config.jy901.alg,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=1,
        .min_value=0,
        .father=45,
        .next=0,
        .child=0,
        .info_str="�������Զ�У��",
        .data=&config.jy901.gyro,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=1,
        .next=53,
        .child=50,
        .info_str="����ͷģ������",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=255,
        .min_value=0,
        .father=49,
        .next=51,
        .child=0,
        .info_str="ģ���ַ",
        .data=&config.ptc08.addr,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=34,
        .min_value=0,
        .father=49,
        .next=52,
        .child=0,
        .info_str="ͼƬ��С",
        .data=&config.ptc08.photo_size,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=255,
        .min_value=0,
        .father=49,
        .next=0,
        .child=0,
        .info_str="ͼƬѹ����",
        .data=&config.ptc08.compression_rate,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=1,
        .next=55,
        .child=54,
        .info_str="���նȴ���������",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=1,
        .min_value=0,
        .father=53,
        .next=0,
        .child=0,
        .info_str="����β��",
        .data=&config.sensor.check_end,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=1,
        .next=60,
        .child=56,
        .info_str="ͬ������",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=1,
        .min_value=0,
        .father=55,
        .next=57,
        .child=0,
        .info_str="ʹ��IO1����ͬ��",
        .data=&config.sync_enable[0],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=1,
        .min_value=0,
        .father=55,
        .next=58,
        .child=0,
        .info_str="ʹ��IO2����ͬ��",
        .data=&config.sync_enable[1],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=1,
        .min_value=0,
        .father=55,
        .next=59,
        .child=0,
        .info_str="ʹ��IO3����ͬ��",
        .data=&config.sync_enable[2],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=1,
        .min_value=0,
        .father=55,
        .next=0,
        .child=0,
        .info_str="ʹ��IO4����ͬ��",
        .data=&config.sync_enable[3],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_RO_UINT32,
        .max_value=0,
        .min_value=0,
        .father=1,
        .next=61,
        .child=0,
        .info_str="�������",
        .data=&operating_state.err_code,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=0,
        .min_value=0,
        .father=1,
        .next=74,
        .child=62,
        .info_str="����״̬",
        .data=NULL,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_RO_UINT8,
        .max_value=0,
        .min_value=0,
        .father=61,
        .next=63,
        .child=0,
        .info_str="������1״̬",
        .data=&err_code[0],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_RO_UINT8,
        .max_value=0,
        .min_value=0,
        .father=61,
        .next=64,
        .child=0,
        .info_str="������2״̬",
        .data=&err_code[1],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_RO_UINT8,
        .max_value=0,
        .min_value=0,
        .father=61,
        .next=65,
        .child=0,
        .info_str="������3״̬",
        .data=&err_code[2],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_RO_UINT8,
        .max_value=0,
        .min_value=0,
        .father=61,
        .next=66,
        .child=0,
        .info_str="�ߵ�ģ��״̬",
        .data=&err_code[3],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_RO_UINT8,
        .max_value=0,
        .min_value=0,
        .father=61,
        .next=67,
        .child=0,
        .info_str="���״̬",
        .data=&err_code[4],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_RO_UINT8,
        .max_value=0,
        .min_value=0,
        .father=61,
        .next=68,
        .child=0,
        .info_str="SD��״̬",
        .data=&err_code[5],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_RO_UINT8,
        .max_value=0,
        .min_value=0,
        .father=61,
        .next=69,
        .child=0,
        .info_str="���״̬",
        .data=&err_code[6],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_RO_UINT8,
        .max_value=0,
        .min_value=0,
        .father=61,
        .next=70,
        .child=0,
        .info_str="4Gģ��״̬",
        .data=&err_code[7],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_RO_UINT8,
        .max_value=0,
        .min_value=0,
        .father=61,
        .next=71,
        .child=0,
        .info_str="��ʪ��ģ��״̬",
        .data=&err_code[8],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_RO_UINT8,
        .max_value=0,
        .min_value=0,
        .father=61,
        .next=72,
        .child=0,
        .info_str="EEPROM״̬",
        .data=&err_code[9],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_RO_UINT8,
        .max_value=0,
        .min_value=0,
        .father=61,
        .next=73,
        .child=0,
        .info_str="����״̬",
        .data=&err_code[10],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_RO_UINT8,
        .max_value=0,
        .min_value=0,
        .father=61,
        .next=0,
        .child=0,
        .info_str="I2C״̬",
        .data=&err_code[11],
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=1,
        .min_value=0,
        .father=1,
        .next=75,
        .child=0,
        .info_str="����",
        .data=&operating_state.flag_config_write_back,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=1,
        .min_value=0,
        .father=1,
        .next=76,
        .child=0,
        .info_str="����",
        .data=&operating_state.flag_reboot,
        .num=0
    },
    {
        .data_type=MENU_DATA_TYPE_UINT8,
        .max_value=1,
        .min_value=0,
        .father=1,
        .next=0,
        .child=0,
        .info_str="�ָ���������\r\n�˲�����������������,�Ƿ����?\r\n0:ȡ��1:����",
        .data=&operating_state.flag_reset,
        .num=0
    }
}; */